As I have worked on the sound driver I have come to an interesting conculsion that I would like to know if others agree with.

Basicly, the more hardware you have to build, the less likely it is you will complete the project.

I have a timing problem.  Using interrupts alone, I can not meet the 44.1 kHz standard of most sound files and sound cards.

1,000,000 / 44,100 = 22.26757 microseconds!
1,000,000 / 22 = 45454.5 kHz - too fast!
1,000,000 / 23 = 43478.3 kHz - too slow!

This is causing me some sound quality problems that I am trying to solve with software.  It would be possible to gate the output if I used an eigth(8) bit edge triggered latch tied to 44.1 kHz clock line, and becomes very easy if that line also drives an interrupt.  However even feeding the clock to an input line of the parallel port and using a polling loop would fix the problem.

The other solution is going to 16 bits of sound output.  The present 8 bits means I have a high noise to signal ratio with even normal audio and low level sounds are a lot worse.  This does not need much software change, but it is a lot more work with two latches and a 16 bit resistor array.

Is anyone interested in doing the extra work in building better hardware?  Or should I just stick the simplest design (8 bit dac)?